home *** CD-ROM | disk | FTP | other *** search
- IMPDEF Help
-
- IMPDEF takes as input a DLL name, and produces as output a module definition file with an
- export section containing the names of functions exported by the DLL.
- The syntax is:
-
- IMPDEF DestName.DEF SourceName.DLL
-
- This creates a module definition file named DestName.DEF from the file SourceName.DLL. The
- resulting module definition file would look something like this:
-
- LIBRARY FileName
- DESCRIPTION 'Description'
- EXPORTS
- ExportFuncName @Ordinal
- .
- .
- .
- ExportFuncName @Ordinal
-
- where:
-
- FileName is the DLL's root file name
- Description is the value of the DESCRIPTION statement if the DLL was previously
- linked with a module definition file that included a DESCRIPTION statement
- ExportFuncName names an exported function
- Ordinal is that function's ordinal value (an integer).
-
- IMPDEF is useful for a DLL that uses C++ classes. If you use the _export keyword when
- defining a class, all of the non-inline member functions and static data members for that class are
- exported. It's easier to let IMPDEF make a module definition file for you because it lists all the
- exported functions, and automatically includes the member functions and static data members.
- Since the names of these functions are mangled, it would be tedious to list them all in the
- EXPORTS section of a module definition file simply to create an import library from the module
- definition file. If you use IMPDEF to create the module definition file, it will include the ordinal
- value for each exported function. If the exported name is mangled, IMPDEF will also include
- that function's unmangled, original name as a comment following the function entry. So, for
- instance, the module definition file created by IMPDEF for a DLL that used C++ classes would
- look something like this:
-
- LIBRARY FileName
- DESCRIPTION 'Description'
- EXPORTS
- MangledExportFuncName @Ordinal ; ExportFuncName
- .
- .
- .
- MangledExportFuncName @Ordinal ; ExportFuncName
-
- where
-
- FileName is the DLL's root file name
- Description is the value of the DESCRIPTION statement if the DLL was previously
- linked with a module definition file that included a DESCRIPTION statement
- MangledExportFuncName provides the mangled name
- Ordinal is that function's ordinal value (an integer)
- ExportFuncName gives the function's original name.
-
- IMPDEF creates an editable source file that lists all the exported functions in the DLL. You can
- edit this .DEF file to contain only those functions that you want to make available to a particular
- application, then run IMPLIB on the edited .DEF file. This results in an import library that
- contains import information for a specific subset of a DLL's export functions.
- Suppose you're distributing a DLL that provides functions to be used by several applications.
- Every export function in the DLL is defined with _export. Now, if all the applications used all
- the DLL's exports, then you could use IMPLIB to make one import library for the DLL. You
- could deliver that import library with the DLL, and it would provide import information for all of
- the DLL's exports. The import library could be linked to any application, thus eliminating the
- need for the particular application to list every DLL function it uses in the IMPORTS section of
- its module definition file.
-
- But let's say you want to give only a few of the DLL's exports to a particular application. Ideally,
- you want a customized import library to be linked to that application--an import library that
- provides import information only for the subset of functions that the application will use. All of
- the other export functions in the DLL will be hidden to that client application.
- To create an import library that satisfies these conditions, run IMPDEF on the compiled and
- linked DLL. IMPDEF produces a module definition file that contains an EXPORT section listing
- all of the DLL's export functions. You can edit that module definition file, remove the
- EXPORTS section entries for those functions you don't want in the customized import library,
- and then run IMPLIB on the module definition file. The result will be an import library that
- contains import information for only those export functions listed in the EXPORTS section of
- the module definition file.
-
- Copyright 1998 Borland International.